package com.ipartek.pruebas.dao;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import com.ipartek.pruebas.bean.Alumno;
import com.ipartek.pruebas.enumeraciones.Rol;
import com.ipartek.pruebas.excepciones.AlumnoException;

public class AlumnoTXTDAO implements AlumnoDAO{

	@Override
	public List<Alumno> getAlumnos() {
		ArrayList<Alumno> array = new ArrayList<Alumno>();
		FileReader fr = TXTDAOFactory.getConnection();
		BufferedReader br = null;
		try{
		br = new BufferedReader(fr);
		String texto = "";
		while (texto != null) {
			texto = br.readLine();
			if (texto != null) {
				StringTokenizer s = new StringTokenizer(texto, ",");
				while (s.hasMoreTokens()) {
					Alumno a = new Alumno();
					a.setNombre(s.nextToken());
					a.setApellido1(s.nextToken());
					a.setApellido2(s.nextToken());
					String edad = s.nextToken();
					a.setEdad(Integer.parseInt(edad));
					a.setEmail(s.nextToken());
					a.setDni(s.nextToken());
					String rol = s.nextToken();
					if (rol.equals("TRABAJADOR")) {
						a.setRol(Rol.TRABAJADOR);
					} else if (rol.equals("CLIENTE")) {
						a.setRol(Rol.CLIENTE);
					} else {
						a.setRol(Rol.JEFE);
					}
					array.add(a);
					// System.out.println(a.toString());

				}

			}
		}
		System.out.println("Lectura y volcado a array finalizado");

	} catch (IOException e) {
		e.printStackTrace();
		System.out.println("Error en el fichero " + TXTDAOFactory.CON_URL + "\\" + TXTDAOFactory.FILE_NAME);
	} catch (AlumnoException e) {
		e.printStackTrace();
		System.out.println("Error a la hora de introducir el alumno");
	} finally {

		try {
			if (fr != null)
				fr.close();
			if (br != null)
				br.close();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	return array;
	}

	@Override
	public boolean udapteAlumno(Alumno alu) throws AlumnoException {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public Alumno getAlumnoByDni(String dni) throws AlumnoException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean deleteAlumno(String dni) throws AlumnoException {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean insertAlumno(Alumno alu) throws AlumnoException {
		// TODO Auto-generated method stub
		return false;
	}

}
